package ln.javatest.day13.demo01;
/*
Lambda表达式有参数有返回值的练习：
需求：
    给定一个计算机calculator接口，内含抽象方法calc可以将两个int数字相加得到和值
    使用Lambda的标准格式调用invokeCalc方法，完成120,130的相加计算
*/

public class Demo01Calculator {
    public static void main(String[] args) {
        //调用invokeCalc方法，方法的参数是一个接口，可以使用匿名内部类
        invokeCalc(10, 20, new Calculator() {
            @Override
             public int calc(int a, int b) {
                return a+b;
            }
        });
        //使用Lambda表达式简化匿名内部类
        invokeCalc(35,35,(int a,int b)->{
            return a+b;
        });
    }
    /*
    定义一个方法
    参数传递两个int类型的整数
    参数传递Calculator接口
    方法内部调用Calculator中的方法calc计算两个整数的和
    */
    public static void invokeCalc(int a,int b,Calculator cl){
        int sum = cl.calc(a,b);
        System.out.println(sum);
    }
}
